﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace SqueezeboxLib
{
    public class PlayersTaggedParameter : TaggedParameter
    {
        public enum AvailableTags
        {
            /// <summary>
            /// Comma separated list of preference values to return (for each player).
            /// </summary>
            playerprefs,

            /// <summary>
            /// Character set to use to return data.
            /// </summary>
            charset
        }

        public enum ReturnedTags
        {
            /// <summary>
            /// Number of players known by Squeezebox Server.
            /// </summary>
            count,

            /// <summary>
            /// Player index. Item delimiter.
            /// </summary>
            playerindex,

            /// <summary>
            /// Player unique identifier.
            /// </summary>
            playerid,

            /// <summary>
            /// Player IP and port.
            /// </summary>
            ip,

            /// <summary>
            /// Player name.
            /// </summary>
            name,

            /// <summary>
            /// Player model.
            /// </summary>
            model,

            /// <summary>
            /// Whether a player is a known player model. Will be 0 for streaming connections.
            /// </summary>
            isplayer,

            /// <summary>
            /// Player display type. Not returned for streaming connections.
            /// </summary>
            displaytype,

            /// <summary>
            /// Whether the player can be powered off. This value is false for streaming connections.
            /// </summary>
            canpoweroff,

            /// <summary>
            /// Connected state.
            /// </summary>
            connected,

            /// <summary>
            /// Preference value. Only if the value is defined.
            /// </summary>
            prefName
        }

        public PlayersTaggedParameter(AvailableTags tag, string parameter)
            : base(tag.ToString(), parameter)
        { }

    }
}
